package com.mmy.controller.plane;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile;

import com.alibaba.fastjson.JSONObject;
import com.mmy.domain.plane.TPlaneOrg;
import com.mmy.domain.sys.TSysUser;
import com.mmy.service.plane.impl.PlaneOrgServiceImpl;

/**
 * 类的介绍：航空公司信息
 *
 * @author shangzl
 * @date 创建日期：
 * @version 1.0
 */
@Controller
public class PlaneOrgController {

	@Autowired
	PlaneOrgServiceImpl planeOrgServiceImpl;

	/**
	 * 函数功能说明：后台航空公司信息管理 显示航空公司基本信息
	 *
	 * @param 参数说明 vPlaneOrg
	 * @return 返回值说明 jsp页面
	 * @author 创建人 hanxl 修改人hanxl
	 * @date 创建日期 2020.11.18 修改时间2021.03.16
	 */
	@RequestMapping("/backplaneorgindex")
	public String backPlaneOrgIndex(HttpServletRequest request, Model model) {
		//创建的航空公司信息不论谁登录显示全部
		List<TPlaneOrg> lstPlaneOrg = planeOrgServiceImpl.findAll();
		model.addAttribute("lstPlaneOrg", lstPlaneOrg);
		return "webbackground/plane/PlaneOrgIndex";
	}

	/**
	 * 函数功能说明： 异步--航空公司信息列表数据
	 * 
	 * @param 参数说明 vPlaneOrg
	 * @return 返回值说明 jsp页面
	 * @author 创建人 hanxl
	 * @date 创建日期 2021.03.17
	 *
	 */
	@RequestMapping("/backplaneorgjson")
	@ResponseBody
	public String backPlaneOrgJson(HttpServletRequest request, Model model) {
		
		// 接收的分页信息处理
		int page = Integer.parseInt(request.getParameter("page"));
		int rows = Integer.parseInt(request.getParameter("rows"));
		int startIndex = (page - 1) * rows;
		int count = rows;
		// 搜索条件

		String strPlaneOrgName = request.getParameter("orgName");
		String strName = request.getParameter("name");
		String strTel = request.getParameter("tel");

		// 表格数据
		List<TPlaneOrg> lstPlaneOrg = planeOrgServiceImpl.findSearch(strPlaneOrgName, strName, strTel, startIndex,
				count);

		model.addAttribute("lstPlaneOrg", lstPlaneOrg);
		// 数据总数量
		int total = planeOrgServiceImpl.queryCount(strPlaneOrgName, strName, strTel);
		Map<String, Object> ret = new HashMap<String, Object>();
		ret.put("rows", lstPlaneOrg);
		ret.put("total", total);
		return JSONObject.toJSONString(ret);
	}

	/**
	 * 函数功能说明： 进入新建航空公司信息页面
	 *
	 * @param 参数说明
	 * @return 返回值说明 jsp页面
	 * @throws 异常处理说明
	 * @author 创建人 shangzl 修改人hanxl
	 * @date 创建日期 修改时间2021.03.17
	 */
	@RequestMapping(value = "/backcreateplaneorg")
	public String toCreatePlaneOrg() {
		return "webbackground/plane/CreatePlaneOrg";
	}

	/**
	 * 函数功能说明： 新建航空公司信息
	 *
	 * @param 参数说明
	 * @return 返回值说明 jsp页面
	 * @throws 异常处理说明
	 * @author 创建人 shangzl 修改人hanxl
	 * @date 创建日期 修改时间2021.03.17
	 */

	@RequestMapping(value = "/backsavecreateplaneorg")
	public String backSaveCreatePlaneOrg(TPlaneOrg tPlaneOrg, MultipartFile fSpare2, HttpSession session) {
		TSysUser sessionSysUser = (TSysUser) session.getAttribute("tSysUser");
		planeOrgServiceImpl.createPlaneOrg(tPlaneOrg, fSpare2, sessionSysUser);
		return "redirect:backplaneorgindex";
	}

	/**
	 * 函数功能说明： 进入修改航空公司信息页面
	 *
	 * @param 参数说明
	 * @return 返回值说明 jsp页面
	 * @throws 异常处理说明
	 * @author 创建人 shangzl 修改人hanxl
	 * @date 创建日期 修改时间2021.03.17
	 */

	@RequestMapping(value = "/toupdateplaneorg")
	public String toUpdatePlaneOrg(HttpServletRequest request, Model model) {

		int iOrgID = Integer.parseInt(request.getParameter("iOrgID"));

		TPlaneOrg dbPlaneOrg = planeOrgServiceImpl.findByOrgID(iOrgID);
		model.addAttribute("dbPlaneOrg", dbPlaneOrg);
		return "webbackground/plane/UpdatePlaneOrg";

	}

	/**
	 * 函数功能说明： 修改航空公司信息提交
	 *
	 * @param 参数说明
	 * @return 返回值说明 jsp页面
	 * @throws 异常处理说明
	 * @author 创建人 shangzl 修改人hanxl
	 * @date 创建日期 修改时间2021.03.17
	 */
	@RequestMapping(value = "/saveupdateplaneorg")
	public String saveUpdatePlaneOrg(TPlaneOrg tPlaneOrg, MultipartFile fSpare2, HttpSession session) {
		TSysUser sessionSysUser = (TSysUser) session.getAttribute("tSysUser");
		planeOrgServiceImpl.updatePlaneOrg(tPlaneOrg, fSpare2, sessionSysUser);
		return "redirect:backplaneorgindex";
	}

	/**
	 * 函数功能说明： 删除航空公司信息
	 *
	 * @param 参数说明
	 * @return 返回值说明 jsp页面
	 * @throws 异常处理说明
	 * @author 创建人 shangzl
	 * @date 创建日期
	 */

	@PostMapping("/delplaneorg")
	@ResponseBody
	public String DelPlaneOrg(String checkList) {

		String[] checklist = checkList.split(",");
		List<Integer> lstOrgID = new ArrayList<>();

		for (String str : checklist) {
			lstOrgID.add(Integer.parseInt(str));
		}

		// tPlaneOrgServiceImpl.delPlaneOrg(lstOrgID);

		return "webbackground/plane/planeorg";
	}

}
